xi2: Ignore button release events of button 4-7
authorCarlos Garcia Campos <carlosgc@gnome.org>
Sat, 5 Mar 2011 11:13:19 +0000 (12:13 +0100)
committerCarlos Garcia Campos <carlosgc@gnome.org>
Sun, 6 Mar 2011 11:42:02 +0000 (12:42 +0100)
We treat button presses of button 4-7 as scroll wheel events, so release
events should be ignored.

https://bugzilla.gnome.org/show_bug.cgi?id=643925

gdk/x11/gdkdevicemanager-xi2.c

index 7c93bbba06ded83576e9ef7328fd90cc2e8713fa..e84c1e3c461aec50f99a892ba5f0f93f230c99e6 100644 (file)
@@ -1104,6 +1104,12 @@ gdk_x11_device_manager_xi2_translate_event (GdkEventTranslator *translator,
                 event->scroll.state = _gdk_x11_device_xi2_translate_state (&xev->mods, &xev->buttons, &xev->group);
                 break;
               }
+            /* Button presses of button 4-7 are scroll events, so ignore the release */
+            else if (ev->evtype == XI_ButtonRelease)
+              {
+                return_val = FALSE;
+                break;
+              }
             /* else (XI_ButtonRelease) fall thru */
           default:
             event->button.type = (ev->evtype == XI_ButtonPress) ? GDK_BUTTON_PRESS : GDK_BUTTON_RELEASE;
@@ -1141,6 +1147,9 @@ gdk_x11_device_manager_xi2_translate_event (GdkEventTranslator *translator,
             event->button.button = xev->detail;
           }
 
+        if (return_val == FALSE)
+          break;
+
         if (!set_screen_from_root (display, event, xev->root))
           {
             return_val = FALSE;